from catma.catmaConfig import *
from catma.axiom import Enumerate
from extraCatmaConfig import *

def PopulateShared(ax2):
    typeDef = ax2.CreateType('EInitialOscillatorOffset', Enumerate, forUE3=False)
    typeDef.AddElement('EOO_OffsetRandom')
    typeDef.AddElement('EOO_OffsetZero')
    typeDef = ax2.CreateType('FOscillator', standalone=False, forUE3=False)
    typeDef.AddMember('Float Amplitude')
    typeDef.AddMember('Float Frequency')
    typeDef.AddMember('EInitialOscillatorOffset InitialOffset')
    typeDef = ax2.CreateType('ROscillator', standalone=False, forUE3=False)
    typeDef.AddMember('FOscillator Pitch')
    typeDef.AddMember('FOscillator Yaw')
    typeDef.AddMember('FOscillator Roll')
    typeDef = ax2.CreateType('VOscillator', standalone=False, forUE3=False)
    typeDef.AddMember('FOscillator X')
    typeDef.AddMember('FOscillator Y')
    typeDef.AddMember('FOscillator Z')
    typeDef = ax2.CreateType('ProgrammaticCameraShakeParam', standalone=False, group=GROUPS.Content)
    typeDef.AddMember('ROscillator rotOscillation')
    typeDef.AddMember('VOscillator locOscillation')
    typeDef.AddMember('FOscillator fovOscillation')
    typeDef.AddMember('Float duration = 0', text='duration of the camera shake, <0 means indefinite, 0 means no oscillation')
    typeDef = ax2.CreateType('CameraShakeParam', standalone=False, group=GROUPS.Content)
    typeDef.AddMember('ProgrammaticCameraShakeParam programmaticParam')
    typeDef.AddMember('Float innerRadius', text='the inner radius within which the shake is played with full scale')
    typeDef.AddMember('Float outerRadius', text='the outer radius where the shake scale is zero')
    typeDef.AddMember('Float fallOff = 1', text='the exponent controlling the falloff between inner and outer radius')
    typeDef = ax2.CreateType('SkeletalMeshComponent', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('ContentReference SkeletalMesh', modifyFlag=MODIFY_TYPE_CHANGED, caption='Skeletal Mesh')
    typeDef.AddMember('ContentReference AnimTreeTemplate', modifyFlag=MODIFY_TYPE_CHANGED, caption='Anim Tree')
    typeDef.AddMember('ContentReference PhysicsAsset', modifyFlag=MODIFY_TYPE_CHANGED, caption='Physics Asset')
    typeDef.AddMember('ContentReference AnimSets', modifyFlag=MODIFY_TYPE_CHANGED, attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET), caption='Anim Set')
    typeDef.AddMember('ContentReference LodAnimTrees', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET), caption='LOD Anim Trees')
    typeDef.AddMember('Float MaxDrawDistance = 10000', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.NOT_NULL), caption='Max Draw Distance', text='the max draw distance of this component, 0 means always drawn')
    typeDef.AddMember('String ContentName', attributeFlag=DEFAULT_ATTRIB_FLAGS, modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('ContentReference SkeletalMeshDead', modifyFlag=MODIFY_REMOVED, group=GROUPS.Content, caption='Skeletal Mesh Dead')
    typeDef = ax2.CreateType('DeadSkeletalMeshComponent', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('ContentReference SkeletalMesh', group=GROUPS.Content, caption='Skeletal Mesh')
    typeDef = ax2.CreateType('AnimTreeLODEntry', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('ContentReference animTreeTemplate', caption='Anim Tree', text="the anim tree to use, it is a string rather than the animTree instance because we don't want to keep reference to all the tress, which will consume a lot of memory")
    typeDef.AddMember('Float distanceFactor', caption='Distance Factor', text='the world distance beyond which to switch over to the current entry')
    typeDef = ax2.CreateType('DustSkeletalMeshComponentAnimTreeLOD', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('ContentReference SkeletalMesh', caption='Skeletal Mesh')
    typeDef.AddMember('ContentReference PhysicsAsset', caption='Physics Asset')
    typeDef.AddMember('ContentReference AnimSets', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET), caption='Anim Set')
    typeDef.AddMember('AnimTreeLODEntry mAnimTreeLODs', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET), caption='LOD Anim Trees')
    typeDef.AddMember('Float MaxDrawDistance = 10000', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.NOT_NULL), caption='Max Draw Distance', text='the max draw distance of this component, 0 means always drawn')
    typeDef = ax2.CreateType('PointLightInfo', standalone=False, forUE3=True, group=GROUPS.Content)
    typeDef.AddMember('Float radius')
    typeDef.AddMember('Float falloff')
    typeDef.AddMember('Float brightness')
    typeDef.AddMember('Float duration')
    typeDef.AddMember('LinearColor colorValue')
    typeDef = ax2.CreateType('ForceFeedbackInfo', standalone=False, forUE3=True, group=GROUPS.Content)
    typeDef.AddMember('Float leftAmplitude')
    typeDef.AddMember('Float rightAmplitude')
    typeDef.AddMember('Float duration')
    typeDef = ax2.CreateType('SoundRTCPInfo', standalone=False, forUE3=True, group=GROUPS.Content)
    typeDef.AddMember('Name rtcpName')
    typeDef.AddMember('Name socketName')
    typeDef = ax2.CreateType('EEffectAttachmentType', Enumerate)
    typeDef.AddElement('Effect_AttachOwner')
    typeDef.AddElement('Effect_AboveTerrain')
    typeDef.AddElement('Effect_SpawnOwnerLocation')
    typeDef = ax2.CreateType('TaggedEffect', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('String effectStartTag')
    typeDef.AddMember('String effectEndTag')
    typeDef.AddMember('ContentReference effectTemplate', modifyFlag=MODIFY_TYPE_CHANGED)
    typeDef.AddMember('String effectSocket')
    typeDef.AddMember('String beamEndParamName')
    typeDef.AddMember('Bool ignoreOwnerHidden = False')
    typeDef.AddMember('EEffectAttachmentType attachmentType = Effect_AttachOwner')
    typeDef.AddMember('Float scale = 1')
    typeDef.AddMember('Float terrainZOffset = 500')
    typeDef.AddMember(('Int %s' % CONTENT_INDEX), attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.HIDDEN), modifyFlag=MODIFY_REMOVED)
    typeDef = ax2.CreateType('WeaponMuzzleFlashInfo', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('String socketName')
    typeDef.AddMember('ContentReference particleTemplate', modifyFlag=MODIFY_TYPE_CHANGED)
    typeDef.AddMember('ContentReference particleHoldPosition')
    typeDef.AddMember('ContentReference particleCarrierEffect')
    typeDef.AddMember('Bool loop = False')
    typeDef.AddMember('Float timeLength')
    typeDef.AddMember('Float timeLengthHoldPosition')
    typeDef.AddMember('Float timeLengthCarrierEffect')
    typeDef.AddMember('Float effectScale = 1')
    typeDef.AddMember(('Int %s' % CONTENT_INDEX), attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.HIDDEN), modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('Vector offsetFromWeapon')
    typeDef = ax2.CreateType('WeaponMuzzleLightInfo', standalone=False, forUE3=True, group=GROUPS.Content)
    typeDef.AddMember('PointLightInfo mPointLight')
    typeDef.AddMember('Float range', modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('Float brightness', modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('Float duration', modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('Float frequency')
    typeDef.AddMember('Float exposure')
    typeDef.AddMember('LinearColor colorValue', modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('Vector offsetFromWeapon')
    typeDef = ax2.CreateType('WeaponCameraShake', standalone=False, group=GROUPS.Content)
    typeDef.AddMember('Bool enable = True', text='Whether to play camera shake when firing', caption='enable camera shake when firing')
    typeDef.AddMember('Float scale = 0.3', caption='intensity scale of the camera shaking')
    typeDef.AddMember('Float duration = 0.2', caption='time duration (in seconds) of the camera shaking')
    typeDef = ax2.CreateType('EDustPhysicalMaterialType', Enumerate)
    typeDef.AddElement('DPMT_Default')
    typeDef.AddElement('DPMT_MetalHollow')
    typeDef.AddElement('DPMT_MetalSolid')
    typeDef.AddElement('DPMT_Flesh')
    typeDef.AddElement('DPMT_Dirt')
    typeDef.AddElement('DPMT_Mud')
    typeDef.AddElement('DPMT_Wood')
    typeDef.AddElement('DPMT_Grass')
    typeDef.AddElement('DPMT_Gravel')
    typeDef.AddElement('DPMT_Concrete')
    typeDef.AddElement('DPMT_Water')
    typeDef.AddElement('DPMT_Glass')
    typeDef = ax2.CreateType('SurfaceHitEffect', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('EDustPhysicalMaterialType materialType')
    typeDef.AddMember('ContentReference effect', modifyFlag=MODIFY_TYPE_CHANGED)
    typeDef.AddMember('Float scale = 1')
    typeDef.AddMember(('Int %s' % CONTENT_INDEX), attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.HIDDEN), modifyFlag=MODIFY_REMOVED)
    typeDef = ax2.CreateType('EWeaponEventType', Enumerate)
    typeDef.AddElement('WE_Fire')
    typeDef.AddElement('WE_AltFire')
    typeDef.AddElement('WE_Reload')
    typeDef.AddElement('WE_AltReload')
    typeDef.AddElement('WE_Equip')
    typeDef.AddElement('WE_PutDown')
    typeDef.AddElement('WE_TurnOn')
    typeDef.AddElement('WE_StopFire')
    typeDef.AddElement('WE_AltStopFire')
    typeDef.AddElement('WE_Zoom')
    typeDef.AddElement('WE_UnZoom')
    typeDef.AddElement('WE_Normal')
    typeDef.AddElement('WE_Empty')
    typeDef.AddElement('WE_AltEmpty')
    typeDef.AddElement('WE_StartFire')
    typeDef.AddElement('WE_AltStartFire')
    typeDef.AddElement('WE_StopReload')
    typeDef = ax2.CreateType('WeaponSound', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('EWeaponEventType eventType')
    typeDef.AddMember('ContentReference sound', modifyFlag=MODIFY_TYPE_CHANGED)
    typeDef.AddMember('Bool localOnly = True')
    typeDef.AddMember('String boneName')
    typeDef.AddMember(('Int %s' % CONTENT_INDEX), attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.HIDDEN), modifyFlag=MODIFY_REMOVED)
    typeDef = ax2.CreateType('SurfaceHitSound', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('EDustPhysicalMaterialType materialType')
    typeDef.AddMember('ContentReference sound', modifyFlag=MODIFY_TYPE_CHANGED)
    typeDef.AddMember('Bool isDelayed = false')
    typeDef.AddMember(('Int %s' % CONTENT_INDEX), attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.HIDDEN), modifyFlag=MODIFY_REMOVED)
    typeDef = ax2.CreateType('TracerParam', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('ContentReference tracerMesh', modifyFlag=MODIFY_TYPE_CHANGED)
    typeDef.AddMember('Float speed = 18000')
    typeDef.AddMember('Float accelRate = 12000')
    typeDef.AddMember('Float maxSpeed = 20000')
    typeDef.AddMember('Vector meshScale')
    typeDef.AddMember('Vector spawnOffset')
    typeDef.AddMember('Int spawnInterval = 1')
    typeDef.AddMember('LinearColor color')
    typeDef.AddMember('ContentReference tracerTrail', modifyFlag=MODIFY_TYPE_CHANGED)
    typeDef.AddMember(('Int %s' % CONTENT_INDEX), attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.HIDDEN), modifyFlag=MODIFY_REMOVED)
    typeDef = ax2.CreateType('VehicleEffect', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('Name m_EffectStartName', tetx='Tag used to trigger the effect', caption='Start Name')
    typeDef.AddMember('Name m_EffectEndName', tetx='Tag used to kill the effect', caption='End Name')
    typeDef.AddMember('Name m_EffectSocketName', tetx='Socket to attach to', caption='Socket Name')
    typeDef.AddMember('Bool m_bRestartRunning = True', text='If true should restart running effects, if false will just keep running', caption='Restart Running')
    typeDef.AddMember('Bool m_bHighDetailOnly = False', text='Whether the effect should only run in high detail', caption='High Detail Only')
    typeDef.AddMember('Float scale = 1', modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('Float m_fScale = 1', text='Effect scale', caption='Effect Scale')
    typeDef.AddMember('ContentReference m_pEffectTemplate', text='Template to use', caption='Template')
    typeDef = ax2.CreateType('VehicleAirThrusterEffect', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('ContentReference pEffectTemplate', text='Particle Effect to use', caption='Particle effect')
    typeDef.AddMember('Name nScaleParameter', text='Scale Parameter', caption='Scale parameter', modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('Name nAttachPoint', text='Attach Socket', caption='Socket')
    typeDef.AddMember('Name nThrustParameter', text='Thrust parameter', caption='Thrust Scale parameter')
    typeDef.AddMember('Name nInverseThrustParameter', text='Inv thrust parameter', caption='Inverse Thrust Scale parameter')
    typeDef.AddMember('Float fThrustMin = 0', text='Min thrust', caption='Min thrust range')
    typeDef.AddMember('Float fThrustMax = 1', text='Max thrust', caption='Max thrust range')
    typeDef.AddMember('Name nVelocityParameter', text='Velocity parameter', caption='Velocity Scale parameter')
    typeDef.AddMember('Float fVelocityMin = 0', text='Min velocity', caption='Min velocity range')
    typeDef.AddMember('Float fVelocityMax = 6000', text='Max velocity', caption='Max velocity range')
    typeDef.AddMember('Float fChangeRatePerSecond = 1', text='ChangeRatePerSecond', caption='Change rate per second')
    typeDef = ax2.CreateType('VehicleAirJetWashEffect', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('ContentReference pEffectTemplate', text='Particle Effect to use', caption='Particle effect')
    typeDef.AddMember('Name nLocationParameter', text='Location Parameter', caption='Location parameter')
    typeDef.AddMember('Name nForwardDustParameter', text='Forward Dust Parameter', caption='Forward dust parameter')
    typeDef.AddMember('Name nForwardRollParameter', text='Forward Roll Parameter', caption='Forward roll parameter')
    typeDef.AddMember('Name nBackwardDustParameter', text='Backward Dust Parameter', caption='Backward dust parameter')
    typeDef.AddMember('Name nBackwardRollParameter', text='Backward Roll Parameter', caption='Backward roll parameter')
    typeDef.AddMember('Name nRandomDustParameter', text='Random Dust Parameter', caption='Random dust parameter')
    typeDef.AddMember('Name nRandomRollParameter', text='Random Roll Parameter', caption='Random roll parameter')
    typeDef.AddMember('Float fEngineRotMin = 0', text='Min Engine Rotation', caption='Min Engine Rotation')
    typeDef.AddMember('Float fEngineRotMax = 180', text='Max Engine Rotation', caption='Max Engine Rotation')
    typeDef.AddMember('Float fForwardMin = 0', text='Min dust forward', caption='Min dust forward')
    typeDef.AddMember('Float fForwardMax = 1', text='Max dust forward', caption='Max dust forward')
    typeDef.AddMember('Float fBackwardMin = 0', text='Min dust backward', caption='Min dust backward')
    typeDef.AddMember('Float fBackwardMax = -1', text='Max dust backward', caption='Max dust backward')
    typeDef.AddMember('Float fRandomMin = -0.25', text='Min dust random', caption='Min dust random')
    typeDef.AddMember('Float fRandomMax = 0.25', text='Max dust random', caption='Max dust random')
    typeDef.AddMember('Float fMinHeight = 0.0', text='Min height', caption='Min Height')
    typeDef.AddMember('Float fMaxHeight = 6000.0', text='Max height', caption='Max Height')
    typeDef = ax2.CreateType('WheelEffect', standalone=False, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('EDustPhysicalMaterialType m_aMaterialTypes', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('ContentReference m_ParticleSystem', modifyFlag=MODIFY_TYPE_CHANGED)
    typeDef.AddMember('Name m_EffectTrigger', text='Tag used to trigger the effect', caption='Trigger name')
    typeDef = ax2.CreateType('TurretAnimLink', standalone=False, forUE3=False, group=GROUPS.Content, attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.NOT_NULL))
    typeDef.AddMember('Name m_TurretSocketName', caption='Turret Socket Name')
    typeDef.AddMember('Name m_DriverSocketName', caption='Driver Socket Name')
    typeDef.AddMember('ContentReference m_DriverAnimSet', caption='Driver Animation Set')
    typeDef.AddMember('ContentReference m_DriverAnimTree', caption='Driver Animation Tree')



def PopulateContent2(ax2):
    PopulateShared(ax2)
    typeDef = ax2.CreateType('VehicleContent', standalone=True, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('SkeletalMeshComponent mMesh')
    typeDef.AddMember('DeadSkeletalMeshComponent mDeadMesh')
    typeDef.AddMember('TaggedSound m_aVehicleSounds', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('SoundRTCPInfo mEngineSoundRTCPInfo', attributeFlag=DEFAULT_ATTRIB_FLAGS)
    typeDef.AddMember('SurfaceHitEffect mWheelEffects', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET), modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('WheelEffect m_aWheelEffects', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('VehicleEffect m_aVehicleEffects', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET), caption='Effects')
    typeDef.AddMember('ContentReference m_pBigExplosionTemplate', caption='Explosion Effect')
    typeDef.AddMember('TurretAnimLink m_aTurretAnimLinks', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET), uemodifier='private transient', caption='Turret Animation Link')
    typeDef = ax2.CreateType('VehicleAirContent', standalone=True, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('VehicleAirThrusterEffect m_aThrusterEffects', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET), caption='Thruster effects')
    typeDef.AddMember('VehicleAirJetWashEffect m_JetWashEffects', attributeFlag=DEFAULT_ATTRIB_FLAGS, caption='jetWash effect')
    typeDef = ax2.CreateType('CharacterContent', standalone=True, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('SkeletalMeshComponent mMesh', modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('SkeletalMeshComponent mHandMesh')
    typeDef.AddMember('SkeletalMeshComponent mDoodleMesh', modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('TaggedSound mCharacterSounds', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('SurfaceHitSound mFootStepSounds', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('DustSkeletalMeshComponentAnimTreeLOD mMeshCombatMode', caption='Mesh in Combat Mode')
    typeDef.AddMember('DustSkeletalMeshComponentAnimTreeLOD mMeshDoodleMode', caption='Mesh in Doodle Mode')
    typeDef = ax2.CreateType('InstallationContent', standalone=True, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('SkeletalMeshComponent mMesh')
    typeDef.AddMember('SkeletalMeshComponent mSimpleMesh')
    typeDef.AddMember('TaggedSound mInstallationSounds', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('TaggedEffect mInstallationEffects', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('TaggedEffect mInstallationBeamEffects', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef = ax2.CreateType('WeaponContent', standalone=True, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('SkeletalMeshComponent mWeaponMesh')
    typeDef = ax2.CreateType('EHandledWeaponType', Enumerate, forUE3=True)
    typeDef.AddElement('HW_LAR')
    typeDef.AddElement('HW_LSR')
    typeDef.AddElement('HW_RL')
    typeDef.AddElement('HW_INJ')
    typeDef.AddElement('HW_GRENADE')
    typeDef.AddElement('HW_SMG')
    typeDef.AddElement('HW_HMG')
    typeDef.AddElement('HW_HSR')
    typeDef.AddElement('HW_OMS')
    typeDef.AddElement('HW_NONE')
    typeDef = ax2.CreateType('HandheldWeaponContent', standalone=True, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('SkeletalMeshComponent mHandMesh', modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('SkeletalMeshComponent Mesh')
    typeDef.AddMember('Name mFirstPersonWeaponSocketName')
    typeDef.AddMember('EHandledWeaponType mHandledWeaponType')
    typeDef = ax2.CreateType('EffectorCullParam', standalone=False, forUE3=True, group=GROUPS.Content)
    typeDef.AddMember('Float effectCullDistance = 10000', text='cull distance for muzzle flash and impact effect, specify -1 to disable the culling')
    typeDef.AddMember('Float impactSoundCullDistance = 1000', text='cull distance for impact sound, specify -1 to disable the culling')
    typeDef.AddMember('Float firingSoundCullDistance = 1000', text='cull distance for firing sound, specify -1 to disable the culling')
    typeDef = ax2.CreateType('WeaponEffector', standalone=True, forUE3=True, group=GROUPS.Content)
    typeDef.AddMember('SkeletalMeshComponent mMesh')
    typeDef.AddMember('SurfaceHitEffect mImpactEffects', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('WeaponSound mWeaponSound', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('WeaponMuzzleFlashInfo mMuzzleFlashInfo', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('SurfaceHitSound mImpactSounds', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('TracerParam mTracerParam', attributeFlag=DEFAULT_ATTRIB_FLAGS)
    typeDef.AddMember('WeaponMuzzleLightInfo mMuzzleLightInfo', attributeFlag=DEFAULT_ATTRIB_FLAGS, modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('WeaponMuzzleLightInfo mMuzzleLights', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('ContentReference mAnimSetsForCharacter', attributeFlag=((DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET) ^ ATTRIB_FLAGS.EXPORTED), caption='Animation sets for 3P character')
    typeDef.AddMember('ContentReference mAnimTreeForCharacter', caption='Animation tree for 3P character', modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('ForceFeedbackInfo mFiringForceFeedback', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('WeaponCameraShake mCamShakeInfo0', group=GROUPS.Content)
    typeDef.AddMember('WeaponCameraShake mCamShakeInfo1', group=GROUPS.Content)
    typeDef.AddMember('EffectorCullParam mCullParam', group=GROUPS.Content, caption='Effect and sound culling params')
    typeDef.AddMember('Name mAttachSocketName', uemodifier='private const', text='the socket to attach this effector to for 3P character')
    typeDef.AddMember('ContentReference mWeaponWhipSound', attributeFlag=(DEFAULT_ATTRIB_FLAGS ^ ATTRIB_FLAGS.EXPORTED))
    typeDef.AddMember('Float mImpactSoundInterval = 1', uemodifier='private const')
    typeDef = ax2.CreateType('TurretContent', standalone=True, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('SkeletalMeshComponent mMesh')
    typeDef.AddMember('SkeletalMeshComponent mSimpleMesh')
    typeDef.AddMember('TaggedSound m_aTaggedSounds', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef = ax2.CreateType('ProjectileContent', standalone=True, forUE3=False, group=GROUPS.Content)
    typeDef = ax2.CreateType('ExplosionCullParam', standalone=False, forUE3=True, group=GROUPS.Content)
    typeDef.AddMember('Float effectCullDistance = 10000', text='cull distance for the particle effect, specify -1 to disable the culling')
    typeDef.AddMember('Float soundCullDistance = 10000', text='cull distance for the sound, specify -1 to disable the culling')
    typeDef = ax2.CreateType('RadialBlurParam', standalone=False, forUE3=True, group=GROUPS.Content)
    typeDef.AddMember('Float maxScale = 2')
    typeDef.AddMember('Float fadeOutTime = 1')
    typeDef = ax2.CreateType('ExplosionContent', standalone=True, forUE3=True, group=GROUPS.Content)
    typeDef.AddMember('SurfaceHitEffect mImpactEffects', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('SurfaceHitSound mImpactSounds', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('PointLightInfo mPointLight')
    typeDef.AddMember('Float mImpactSoundRange = 15000', modifyFlag=MODIFY_REMOVED)
    typeDef.AddMember('ExplosionCullParam mCullParams', caption='Effect and sound culling params')
    typeDef.AddMember('RadialBlurParam mRadialBlurParam')
    typeDef.AddMember('CameraShakeParam mCameraShakeParam')
    typeDef = ax2.CreateType('MCCContent', standalone=True, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('SkeletalMeshComponent mMesh')
    typeDef.AddMember('TaggedEffect mMccEffects', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('TaggedSound mMccSounds', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef = ax2.CreateType('TetheringSpireContent', standalone=True, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('SkeletalMeshComponent mMesh')
    typeDef.AddMember('TaggedEffect mTetheringSpireEffects', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef.AddMember('TaggedSound mTetheringSpireSounds', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))
    typeDef = ax2.CreateType('DustEffectLocator', standalone=True, forUE3=False, group=GROUPS.Content)
    typeDef.AddMember('TaggedEffect mTaggedEffects', attributeFlag=(DEFAULT_ATTRIB_FLAGS | ATTRIB_FLAGS.IS_SET))



